package com;

import java.util.ArrayList;
import java.util.List;

/**
 * @author:jml
 * @date: 2019/11/25 16:44 @description：
 */
class Main {
	
	
	public static void main(String[] args) {
		List<? extends C> list1; // list1 的元素的类型只能是 C 和 C 的子类。
		List<? super C> list2; // list2 的元素的类型只能是 C 和 C 的父类。
		
		A a1 = new A();
		B b1 = new B();
		C c1 = new C();
		D d1 = new D();
		E e1 = new E();
		F f1 = new F();
		
		ArrayList<A> a = new ArrayList<>();
		ArrayList<B> b = new ArrayList<>();
		ArrayList<C> c = new ArrayList<>();
		ArrayList<D> d = new ArrayList<>();
		ArrayList<E> e = new ArrayList<>();
		ArrayList<F> f = new ArrayList<>();
		// <? extends C>
		list1 = c;
		list1 = d;
		list1 = e;
		list1 = f;
		//list1 = b; // 报错
		
		// <? super C>
		list2 = a;
		list2 = b;
		list2 = c;
		//list2 = d; // 报错
		
	}
}
